from PIL import Image
import cairosvg
import os

# SVG文件路径
svg_path = 'resource/image/water_flow_bg.svg'
# 输出PNG文件路径
png_path = 'resource/image/water_flow_bg.png'

try:
    # 使用cairosvg转换SVG到PNG
    cairosvg.svg2png(url=svg_path, write_to=png_path, width=1920, height=1080)
    print('成功将SVG转换为PNG: %s' % png_path)
except Exception as e:
    print('转换失败: %s' % str(e))
    # 如果cairosvg不可用，尝试使用PIL的备用方法
    try:
        from svglib.svglib import svg2rlg
        from reportlab.graphics import renderPM
        
        # 使用svglib和reportlab转换
        drawing = svg2rlg(svg_path)
        renderPM.drawToFile(drawing, png_path, fmt='PNG', dpi=300)
        print('备用方法转换成功: %s' % png_path)
    except Exception as e2:
        print('备用方法也失败: %s' % str(e2))
        print('请手动转换SVG文件，或者安装必要的库: pip install cairosvg 或 pip install svglib reportlab')